package cn.sumpu.app.coolsk.biz;



import cn.sumpu.app.coolsk.exception.AppBusinessException;
import cn.sumpu.toolkit.weibo.AccessUser;

public interface WeiboBiz {
	/**
	 * 发起授权请求新浪微博
	 */
	public String requestOauthSina()throws AppBusinessException;
	
	/**
	 * 发起授权请求新浪微博
	 * 
	 * @param callbackUrl回调地址
	 */
	public String requestOauthSina(String callbackUrl)throws AppBusinessException;
	
	/**
	 * 获取用户新浪微博授权信息
	 * 
	 * @param oauthVerifier 授权码
	 * @return AccessToken
	 */
	public AccessUser requstAccessTokenSina(String oauthVerifier)throws AppBusinessException;
	
	/**
	 * 根据用户ID获取用户新浪微博资料（授权用户）
	 * 
	 * @param accessToken 用户授权认证信息
	 * @param accessSecret 用户授权认证信息
	 */
	public AccessUser getUserInfoSina(String userId, String accessToken,String accessSecret)throws AppBusinessException;
	
	/**
	 * 分享内容到新浪微博
	 * 
	 * @param text 文本内容
	 * @param url 分享的链接
	 * @param picUrl 图片链接
	 * @param site 网站来源
	 */
	public String shareSina(String text,String url,String picUrl,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到新浪微博
	 * 
	 * @param text 文本内容
	 * @param url 分享的链接
	 * @param site 网站来源
	 */
	public String shareUrlSina(String text,String url,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到新浪微博
	 * 
	 * @param text 文本内容
	 * @param picUrl 图片链接
	 * @param site 网站来源
	 */
	public String sharePicSina(String text,String picUrl,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到新浪微博
	 * 
	 * @param text 文本内容
	 * @param site 网站来源
	 */
	public String shareTextSina(String text,String site)throws AppBusinessException;
	
	/**
	 * 发布一条新浪微博信息(文本内容)
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param text 发送的文本内容
	 */
	public void sendMessageSina(String text,String accessToken,String accessSecret) throws AppBusinessException;
	
	/**
	 * 上传图片并发布一条微博到新浪
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param text 发送的文本内容
	 * @param picUrl 网络图片路径
	 */
	public void sendMessageNetPicSina(String text,String picUrl,String accessToken,String accessSecret) throws AppBusinessException;
	
	/**
	 * 上传图片并发布一条微博到新浪
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param text 发送的文本内容
	 * @param picUrl 本地图片路径
	 */
	public void sendMessageLocalPicSina(String text, String picUrl,String accessToken, String accessSecret)throws AppBusinessException;
	
	/**
	 * 新浪微博关注
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param weiboUserId 关注的微博帐号id
	 */
	public void addFollowSina(String weiboUserId, String accessToken,String accessSecret)throws AppBusinessException;
	
	/**
	 * 取消新浪微博关注
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param weiboUserId 取消关注的微博帐号id
	 */
	public void delFollowSina(String weiboUserId, String accessToken,String accessSecret)throws AppBusinessException;
	
	/**
	 * 发起授权请求腾讯微博
	 * @return String 请求的地址
	 */
	public String requestOauthTencent()throws AppBusinessException;
	
	/**
	 * 发起授权请求腾讯微博
	 * @param callbackUrl 回调地址
	 * @return String 请求的地址
	 */
	public String requestOauthTencent(String callbackUrl)throws AppBusinessException;
	
	/**
	 * 获取用户腾讯微博授权信息
	 * 
	 * @param oauthVerifier 授权码
	 * @return OAuth 返回OAuth获得AccessToken
	 */
	public AccessUser requstAccessTokenTencent(String oauthVerifier)throws AppBusinessException;
	
	/**
	 * 获取腾讯微博用户资料（授权用户）
	 * 
	 * @param accessToken
	 * @param accessSecret
	 * @return JSONObject
	 */
	public AccessUser getUserInfoTencent(String userId, String accessToken,String accessSecret)throws AppBusinessException;
	
	/**
	 * 分享内容到腾讯微博
	 * 
	 * @param text 文本内容
	 * @param url 分享的链接
	 * @param picUrl 图片链接
	 * @param site 网站来源
	 */
	public String shareTencent(String text,String url,String picUrl,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到腾讯微博
	 * 
	 * @param text 文本内容
	 * @param url 分享的链接
	 * @param site 网站来源
	 */
	public String shareUrlTencent(String text,String url,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到腾讯微博
	 * 
	 * @param text 文本内容
	 * @param picUrl 图片链接
	 * @param site 网站来源
	 */
	public String sharePicTencent(String text,String picUrl,String site)throws AppBusinessException;
	
	/**
	 * 分享内容到腾讯微博
	 * 
	 * @param text 文本内容
	 * @param site 网站来源
	 */
	public String shareTextTencent(String text,String site)throws AppBusinessException;
	
	/**
	 * 发布一条腾讯微博信息(文本内容)
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param text 发送的文本内容
	 * @param clientIP 用户ip（必须正确填写用户侧真实ip，不能为内网ip及以127或255开头的ip，以分析用户所在地）
	 */
	public void sendMessageTencent(String text,String accessToken,String accessSecret,String clientIP) throws AppBusinessException;

	/**
	 * 上传图片并发布一条微博到腾讯微博
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param text 发送的文本内容
	 * @param picUrl 本地图片路径
	 * @param clientIP 用户ip（必须正确填写用户侧真实ip，不能为内网ip及以127或255开头的ip，以分析用户所在地）
	 */
	public  void sendMessageLocalPicTencent(String text, String picUrl,String accessToken, String accessSecret,String clientIP)throws AppBusinessException;
	
	/**
	 * 微博关注腾讯微博
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param weiboUserId 关注的微博帐号id
	 * @param clientIP 用户ip（必须正确填写用户侧真实ip，不能为内网ip及以127或255开头的ip，以分析用户所在地）
	 */
	public  void addFollowTencent(String weiboUserId, String accessToken,String accessSecret,String clientIP)throws AppBusinessException;
	
	/**
	 * 取消腾讯微博关注
	 * 
	 * @param accessToken 授权认证信息
	 * @param accessSecret 授权认证信息
	 * @param weiboUserId 取消关注的微博帐号id
	 */
	public  void delFollowTencent(String weiboUserId, String accessToken,String accessSecret)throws AppBusinessException;
}
